package com.swf.seed.jolt;

import bea.jolt.pool.DataSet;

/**
 * <p>Title: PoolledJoltData</p>
 * <p>Description: 使用连接池的Jolt调用的数据。使用池时，保存数据使用DataSet对象，PoolledJoltData封装了DataSet对象</p>
 * <p>Copyright: Copyright (c) 2009</p>
 * <p>Company: Beijing Watchdata CO,.Ltd</p>
 * @author da.wang
 * @version 1.0
 */
public class PoolledJoltData implements IJoltData {
    private DataSet ds;
    private String serviceName;
    public PoolledJoltData() {
        this.ds = new DataSet();
    }

    /**
     * setByte
     *
     * @param name String
     * @param val byte
     */
    public void setByte( String name, byte val ) {
        Byte o = new Byte( val );
        ds.setValue( name, o );
    }

    /**
     * setByteItem
     *
     * @param name String
     * @param itemNo int
     * @param val byte
     */
    public void setByteItem( String name, int itemNo, byte val ) {
        Byte o = new Byte( val );
        ds.setValue( name, itemNo, o );
    }

    /**
     * setBytes
     *
     * @param name String
     * @param val byte[]
     * @param len int
     */
    public void setBytes( String name, byte[] val, int len ) {
        ds.setValue( name, val );
    }

    /**
     * setBytesItem
     *
     * @param name String
     * @param itemNo int
     * @param val byte[]
     * @param len int
     */
    public void setBytesItem( String name, int itemNo, byte[] val, int len ) {
        ds.setValue( name, itemNo, val );
    }

    /**
     * setDouble
     *
     * @param name String
     * @param val double
     */
    public void setDouble( String name, double val ) {
        Double o = new Double( val );
        ds.setValue( name, o );
    }

    /**
     * setDoubleItem
     *
     * @param name String
     * @param itemNo int
     * @param val double
     */
    public void setDoubleItem( String name, int itemNo, double val ) {
        Double o = new Double( val );
        ds.setValue( name, itemNo, o );
    }

    /**
     * setFloat
     *
     * @param name String
     * @param val float
     */
    public void setFloat( String name, float val ) {
        Float o = new Float( val );
        ds.setValue( name, o );
    }

    /**
     * setFloatItem
     *
     * @param name String
     * @param itemNo int
     * @param val float
     */
    public void setFloatItem( String name, int itemNo, float val ) {
        Float o = new Float( val );
        ds.setValue( name, itemNo, o );
    }

    /**
     * setInt
     *
     * @param name String
     * @param val int
     */
    public void setInt( String name, int val ) {
        Integer o = new Integer( val );
        ds.setValue( name, o );
    }

    /**
     * setIntItem
     *
     * @param name String
     * @param itemNo int
     * @param val int
     */
    public void setIntItem( String name, int itemNo, int val ) {
        Integer o = new Integer( val );
        ds.setValue( name, itemNo, o );
    }

    /**
     * setShort
     *
     * @param name String
     * @param val short
     */
    public void setShort( String name, short val ) {
        Short o = new Short( val );
        ds.setValue( name, o );
    }

    /**
     * setShortItem
     *
     * @param name String
     * @param itemNo int
     * @param val short
     */
    public void setShortItem( String name, int itemNo, short val ) {
        Short o = new Short( val );
        ds.setValue( name, itemNo, o );
    }

    /**
     * setString
     *
     * @param name String
     * @param val String
     */
    public void setString( String name, String val ) {
        ds.setValue( name, val );
    }

    /**
     * setStringItem
     *
     * @param name String
     * @param itemNo int
     * @param val String
     */
    public void setStringItem( String name, int itemNo, String val ) {
        ds.setValue( name, itemNo, val );
    }

    /**
     * getData
     *
     * @return Object
     */
    public Object getData() {
        return this.ds;
    }

    /**
     * setData
     *
     * @param obj Object
     */
    public void setData( Object obj ) {
        if ( obj instanceof DataSet ) {
            this.ds = (DataSet)obj;
        }
        else {
            throw new IllegalArgumentException( "*******参数类型不正确，需要DataSet类型，但是不是。" );
        }
    }

    /**
     * getOccurrenceCount
     *
     * @param sParamName String
     * @return int
     */
    public int getOccurrenceCount( String sParamName ) {
        throw new UnsupportedOperationException( "*******PooledJoltData does not support the method." );
    }

    /**
     * getByteDef
     *
     * @param name String
     * @param def byte
     * @return byte
     */
    public byte getByteDef( String name, byte def ) {
        Byte o = new Byte( def  );
        return ( (Byte)ds.getValue( name, o ) ).byteValue();
    }

    /**
     * getByteItemDef
     *
     * @param name String
     * @param itemNo int
     * @param def byte
     * @return byte
     */
    public byte getByteItemDef( String name, int itemNo, byte def ) {
        Byte o = new Byte( def );
        return ( (Byte)ds.getValue( name, itemNo, o ) ).byteValue();
    }

    /**
     * getBytesDef
     *
     * @param name String
     * @param def byte[]
     * @return byte[]
     */
    public byte[] getBytesDef( String name, byte[] def ) {
        return ( byte[] )ds.getValue( name, def );
    }

    /**
     * getBytesItemDef
     *
     * @param name String
     * @param itemNo int
     * @param def byte[]
     * @return byte[]
     */
    public byte[] getBytesItemDef( String name, int itemNo, byte[] def ) {
        return ( byte[] )ds.getValue( name, itemNo, def );
    }

    /**
     * getDoubleDef
     *
     * @param name String
     * @param def double
     * @return double
     */
    public double getDoubleDef( String name, double def ) {
        Double o = new Double( def );
        return ( (Double)ds.getValue( name, o ) ).doubleValue();
    }

    /**
     * getDoubleItemDef
     *
     * @param name String
     * @param itemNo int
     * @param def double
     * @return double
     */
    public double getDoubleItemDef( String name, int itemNo, double def ) {
        Double o = new Double( def );
        return ( (Double)ds.getValue( name, itemNo, o ) ).doubleValue();
    }

    /**
     * getFloatDef
     *
     * @param name String
     * @param def float
     * @return float
     */
    public float getFloatDef( String name, float def ) {
        Float o = new Float( def );
        return ( (Float)ds.getValue( name, o ) ).floatValue();
    }

    /**
     * getFloatItemDef
     *
     * @param name String
     * @param itemNo int
     * @param def float
     * @return float
     */
    public float getFloatItemDef( String name, int itemNo, float def ) {
        Float o = new Float( def );
        return ( (Float)ds.getValue( name, itemNo, o ) ).floatValue();
    }

    /**
     * getIntDef
     *
     * @param name String
     * @param def int
     * @return int
     */
    public int getIntDef( String name, int def ) {
        Integer o = new Integer( def );
        return ( (Integer)ds.getValue( name, o ) ).intValue();
    }

    /**
     * getIntItemDef
     *
     * @param name String
     * @param itemNo int
     * @param def int
     * @return int
     */
    public int getIntItemDef( String name, int itemNo, int def ) {
        Integer o = new Integer( def );
        return ( (Integer)ds.getValue( name, itemNo, o ) ).intValue();
    }

    /**
     * getShortDef
     *
     * @param name String
     * @param def short
     * @return short
     */
    public short getShortDef( String name, short def ) {
        Short o = new Short( def );
        return ( (Short)ds.getValue( name, o ) ).shortValue();
    }

    /**
     * getShortItemDef
     *
     * @param name String
     * @param itemNo int
     * @param def short
     * @return short
     */
    public short getShortItemDef( String name, int itemNo, short def ) {
        Short o = new Short( def );
        return ( (Short)ds.getValue( name, itemNo, o ) ).shortValue();
    }

    /**
     * getStringDef
     *
     * @param name String
     * @param def String
     * @return String
     */
    public String getStringDef( String name, String def ) {
        return (String)ds.getValue( name, def );
    }

    /**
     * getStringItemDef
     *
     * @param name String
     * @param itemNo int
     * @param def String
     * @return String
     */
    public String getStringItemDef( String name, int itemNo, String def ) {
        return (String)ds.getValue( name, itemNo, def );
    }

    /**
     * destroy
     */
    public void destroy() {
    }

    /**
     * setServiceName
     *
     * @param serviceName String
     */
    public void setServiceName( String serviceName ) {
        this.serviceName = serviceName;
    }

    /**
     * getServiceName
     *
     * @return String
     */
    public String getServiceName() {
        return this.serviceName;
    }
}
